package com.eduagent.xwqeduagent.model.vo;

import java.util.List;
import lombok.Data;

/**
 * 教案数据结构
 */
@Data
public class TeachingPlanVO {
    /**
     * 课程标题
     */
    private String title;
    
    /**
     * 适用对象
     */
    private String targetAudience;
    
    /**
     * 课程时长(分钟)
     */
    private Integer duration;
    
    /**
     * 教学目标
     */
    private TeachingObjectives objectives;
    
    /**
     * 教学重难点
     */
    private KeyPoints keyPoints;
    
    /**
     * 教学资源
     */
    private List<TeachingResource> resources;
    
    /**
     * 教学过程
     */
    private List<TeachingProcess> processes;
    
    /**
     * 作业设计
     */
    private List<Assignment> assignments;
    
    /**
     * 评估方式
     */
    private List<Assessment> assessments;
    
    /**
     * 教学反思
     */
    private String reflection;
    
    /**
     * 教学目标
     */
    @Data
    public static class TeachingObjectives {
        /**
         * 知识目标
         */
        private List<String> knowledge;
        
        /**
         * 能力目标
         */
        private List<String> ability;
        
        /**
         * 情感目标
         */
        private List<String> emotion;
    }
    
    /**
     * 教学重难点
     */
    @Data
    public static class KeyPoints {
        /**
         * 重点
         */
        private List<String> keyPoints;
        
        /**
         * 难点
         */
        private List<String> difficultyPoints;
    }
    
    /**
     * 教学资源
     */
    @Data
    public static class TeachingResource {
        /**
         * 资源名称
         */
        private String name;
        
        /**
         * 资源类型
         */
        private String type;
        
        /**
         * 用途
         */
        private String purpose;
    }
    
    /**
     * 教学过程
     */
    @Data
    public static class TeachingProcess {
        /**
         * 环节名称
         */
        private String name;
        
        /**
         * 时间分配(分钟)
         */
        private Integer timeAllocation;
        
        /**
         * 活动描述
         */
        private String activityDescription;
        
        /**
         * 教学方法
         */
        private String teachingMethod;
        
        /**
         * 小节(只有主要内容讲解环节才有)
         */
        private List<Section> sections;
    }
    
    /**
     * 内容小节
     */
    @Data
    public static class Section {
        /**
         * 标题
         */
        private String title;
        
        /**
         * 内容
         */
        private String content;
        
        /**
         * 时间(分钟)
         */
        private Integer duration;
    }
    
    /**
     * 作业设计
     */
    @Data
    public static class Assignment {
        /**
         * 作业名称
         */
        private String name;
        
        /**
         * 作业描述
         */
        private String description;
        
        /**
         * 完成形式
         */
        private String form;
        
        /**
         * 提交要求
         */
        private String requirements;
    }
    
    /**
     * 评估方式
     */
    @Data
    public static class Assessment {
        /**
         * 评估项目
         */
        private String item;
        
        /**
         * 评估标准
         */
        private String criteria;
        
        /**
         * 所占比例
         */
        private String percentage;
    }
} 